package com.gec.dao;

import com.gec.domain.Leave;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface LeaveDao {
    //{A}更新 【办理人】 和 【任务 ID】, 根据【流程实例 ID】
    int updateAssigneeAndTask(
            @Param("insId") String insId,
            @Param("taskId") String taskId,
            @Param("assignee") String assignee);

    //{B}添加请假信息到 t_leave 表
    int addLeave(Leave leave);

    //{C}查看我发起的请假流程
    List<Leave> queryMyInitiate(
            @Param("initiator") String initiator);

    //{D}查看待我审批的任务
    List<Leave> queryWaitMyApprove(
            @Param("assignee") String assignee);

    //{E}查询我的任务详情
    Leave queryMyTaskByTaskId(@Param("taskId") String taskId);

    int updateStatusByInstance(
            @Param("procInstId") String procInstId,
            @Param("status") String status);

    int clearTaskAndAssignee(@Param("procInstId") String procInstId);

    List<String> queryHistoryProcessInstanceIdByAssignee(@Param("assignee") String assignee);

    List<Leave> queryMyApproveByProcessInstanceIds(@Param("procInstId") String procInstId);

    int addRecordToHistoricLeave(@Param("processInstanceId") String processInstanceId,@Param("assignee") String assignee);

}
